﻿using System;
using System.Collections.Generic;
using System.IO;

namespace SharpSqlAnalyzer
{
	// Token: 0x0200004E RID: 78
	internal class TLexerMdx : TCustomLexer
	{
		// Token: 0x06000121 RID: 289 RVA: 0x0001A533 File Offset: 0x00018733
		static TLexerMdx()
		{
			TLexerMdx.table_file = "/SharpSqlAnalyzer/parser/mdx/mdx_lex_table.txt";
			TLexerMdx.inittable();
		}

		// Token: 0x06000122 RID: 290 RVA: 0x0001A55E File Offset: 0x0001875E
		internal TLexerMdx()
		{
			this.dbvendor = EDbVendor.dbvmdx;
			this.sourcetokens = new TSourceTokenList();
		}

		// Token: 0x06000123 RID: 291 RVA: 0x0001A579 File Offset: 0x00018779
		public static bool canBeColumnName(int tokencode)
		{
			return TCustomLexer.canBeColumnName(tokencode, TLexerMdx.keywordTypeList);
		}

		// Token: 0x06000124 RID: 292 RVA: 0x0001A586 File Offset: 0x00018786
		public static int iskeyword(string str)
		{
			return TCustomLexer.iskeyword(str, TLexerMdx.keywordValueList);
		}

		// Token: 0x06000125 RID: 293 RVA: 0x0001A593 File Offset: 0x00018793
		public static int getkeywordvalue(string keyword)
		{
			return TCustomLexer.getkeywordvalue(keyword, TLexerMdx.keywordValueList);
		}

		// Token: 0x06000126 RID: 294 RVA: 0x0001A5A0 File Offset: 0x000187A0
		internal virtual int issystemvariable(string str)
		{
			return -1;
		}

        // Token: 0x06000127 RID: 295 RVA: 0x0001A5A4 File Offset: 0x000187A4
        internal override int yylex()
        {
            do
            {
                yynew();
                while (true)
                {
                    int i;
                    for (i = yykl[yystate]; i <= yykh[yystate]; i++)
                    {
                        yymark(yyk[i]);
                    }
                    for (i = yymh[yystate]; i >= yyml[yystate]; i--)
                    {
                        yymatch(yym[i]);
                    }
                    if (yytl[yystate] > yyth[yystate])
                    {
                        break;
                    }
                    yyscan();
                    i = yytl[yystate];
                    totablechar();
                    for (; i <= yyth[yystate] && !charinarray(yytablechar, yyt[i].cc); i++)
                    {
                    }
                    if (i > yyth[yystate])
                    {
                        break;
                    }
                    yystate = yyt[i].s;
                }
                do
                {
                    int yyruleno;
                    if ((yyruleno = yyfind()) != -1)
                    {
                        yyaction(yyruleno);
                        continue;
                    }
                    if (!yydefault() && yywrap())
                    {
                        yyclear();
                        returni(0);
                    }
                    break;
                }
                while (yyreject);
            }
            while (!yydone);
            return yyretval;
        }

        // Token: 0x06000128 RID: 296 RVA: 0x0001A6E8 File Offset: 0x000188E8
        internal static void inittable()
		{
			bool flag = false;
			bool flag2 = false;
			bool flag3 = false;
			bool flag4 = false;
			bool flag5 = false;
			bool flag6 = false;
			bool flag7 = false;
			bool flag8 = false;
			bool flag9 = false;
			bool flag10 = false;
			bool flag11 = false;
			int num = 0;
			int num2 = 0;
			int num3 = 0;
			int num4 = 0;
			int num5 = 0;
			int num6 = 0;
			int num7 = 0;
			int num8 = 0;
			int num9 = 0;
			int num10 = 0;
			int num11 = 0;
			TLexerMdx.keywordValueList.Clear();
			TLexerMdx.keywordTypeList.Clear();
			StreamReader streamReader = TCustomLexer.readSymbolTable("mdx", "lex");
			try
			{
				string text;
				while ((text = streamReader.ReadLine()) != null)
				{
					if (text.Trim().StartsWith("yynmarks=", StringComparison.Ordinal))
					{
						TLexerMdx.yynmarks = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TLexerMdx.yyk = new int[TLexerMdx.yynmarks + 1];
					}
					else if (text.Trim().StartsWith("yynmatches=", StringComparison.Ordinal))
					{
						TLexerMdx.yynmatches = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TLexerMdx.yym = new int[TLexerMdx.yynmatches + 1];
					}
					else if (text.Trim().StartsWith("yyntrans=", StringComparison.Ordinal))
					{
						TLexerMdx.yyntrans = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TLexerMdx.yytint = new int[TLexerMdx.yyntrans + 1];
						TLexerMdx.yyt = new TYytRec[TLexerMdx.yyntrans + 1];
					}
					else if (text.Trim().StartsWith("yynstates=", StringComparison.Ordinal))
					{
						TLexerMdx.yynstates = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TLexerMdx.yykl = new int[TLexerMdx.yynstates];
						TLexerMdx.yykh = new int[TLexerMdx.yynstates];
						TLexerMdx.yyml = new int[TLexerMdx.yynstates];
						TLexerMdx.yymh = new int[TLexerMdx.yynstates];
						TLexerMdx.yytl = new int[TLexerMdx.yynstates];
						TLexerMdx.yyth = new int[TLexerMdx.yynstates];
					}
					else if (text.Trim().StartsWith("<end>", StringComparison.Ordinal))
					{
						if (flag)
						{
							flag = false;
							if (TLexerMdx.yynmarks + 1 != num)
							{
								Console.WriteLine("required1:" + TLexerMdx.yynmarks.ToString() + " actually:" + (num - 1).ToString());
							}
						}
						else if (flag2)
						{
							flag2 = false;
							if (TLexerMdx.yynmatches + 1 != num2)
							{
								Console.WriteLine("required2:" + TLexerMdx.yynmatches.ToString() + " actually:" + (num2 - 1).ToString());
							}
						}
						else if (flag3)
						{
							flag3 = false;
							if (TLexerMdx.yynstates != num3)
							{
								Console.WriteLine("required3:" + TLexerMdx.yynstates.ToString() + " actually:" + num3.ToString());
							}
						}
						else if (flag4)
						{
							flag4 = false;
							if (TLexerMdx.yynstates != num4)
							{
								Console.WriteLine("required4:" + TLexerMdx.yynstates.ToString() + " actually:" + num4.ToString());
							}
						}
						else if (flag5)
						{
							flag5 = false;
							if (TLexerMdx.yynstates != num5)
							{
								Console.WriteLine("required5:" + TLexerMdx.yynstates.ToString() + " actually:" + num5.ToString());
							}
						}
						else if (flag6)
						{
							flag6 = false;
							if (TLexerMdx.yynstates != num6)
							{
								Console.WriteLine("required:" + TLexerMdx.yynstates.ToString() + " actually:" + num6.ToString());
							}
						}
						else if (flag7)
						{
							flag7 = false;
							if (TLexerMdx.yynstates != num7)
							{
								Console.WriteLine("required6:" + TLexerMdx.yynstates.ToString() + " actually:" + num7.ToString());
							}
						}
						else if (flag8)
						{
							flag8 = false;
							if (TLexerMdx.yynstates != num8)
							{
								Console.WriteLine("required7:" + TLexerMdx.yynstates.ToString() + " actually:" + num8.ToString());
							}
						}
						else if (flag9)
						{
							flag9 = false;
							if (TLexerMdx.yyntrans + 1 != num9)
							{
								Console.WriteLine("required8:" + TLexerMdx.yyntrans.ToString() + " actually:" + (num9 - 1).ToString());
							}
						}
						else if (flag10)
						{
							flag10 = false;
							if (TLexerMdx.yyntrans + 1 != num10)
							{
								Console.WriteLine("required9:" + TLexerMdx.yyntrans.ToString() + " actually:" + (num10 - 1).ToString());
							}
						}
						else if (flag11)
						{
							flag11 = false;
						}
					}
					else if (text.Trim().StartsWith("yyk =", StringComparison.Ordinal))
					{
						flag = true;
					}
					else if (text.Trim().StartsWith("yym =", StringComparison.Ordinal))
					{
						flag2 = true;
					}
					else if (text.Trim().StartsWith("yykl =", StringComparison.Ordinal))
					{
						flag3 = true;
					}
					else if (text.Trim().StartsWith("yykh =", StringComparison.Ordinal))
					{
						flag4 = true;
					}
					else if (text.Trim().StartsWith("yyml =", StringComparison.Ordinal))
					{
						flag5 = true;
					}
					else if (text.Trim().StartsWith("yymh =", StringComparison.Ordinal))
					{
						flag6 = true;
					}
					else if (text.Trim().StartsWith("yytl =", StringComparison.Ordinal))
					{
						flag7 = true;
					}
					else if (text.Trim().StartsWith("yyth =", StringComparison.Ordinal))
					{
						flag8 = true;
					}
					else if (text.Trim().StartsWith("yytint =", StringComparison.Ordinal))
					{
						flag9 = true;
					}
					else if (text.Trim().StartsWith("yyt =", StringComparison.Ordinal))
					{
						flag10 = true;
					}
					else if (text.Trim().StartsWith("keywordsvalue =", StringComparison.Ordinal))
					{
						flag11 = true;
					}
					else if (flag)
					{
						string[] array = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int i = 0; i < array.Length; i++)
						{
							TLexerMdx.yyk[num++] = int.Parse(array[i].Trim());
						}
					}
					else if (flag2)
					{
						string[] array2 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int j = 0; j < array2.Length; j++)
						{
							TLexerMdx.yym[num2++] = int.Parse(array2[j].Trim());
						}
					}
					else if (flag3)
					{
						string[] array3 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int k = 0; k < array3.Length; k++)
						{
							TLexerMdx.yykl[num3++] = int.Parse(array3[k].Trim());
						}
					}
					else if (flag4)
					{
						string[] array4 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int l = 0; l < array4.Length; l++)
						{
							TLexerMdx.yykh[num4++] = int.Parse(array4[l].Trim());
						}
					}
					else if (flag5)
					{
						string[] array5 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int m = 0; m < array5.Length; m++)
						{
							TLexerMdx.yyml[num5++] = int.Parse(array5[m].Trim());
						}
					}
					else if (flag6)
					{
						string[] array6 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int n = 0; n < array6.Length; n++)
						{
							TLexerMdx.yymh[num6++] = int.Parse(array6[n].Trim());
						}
					}
					else if (flag7)
					{
						string[] array7 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int num12 = 0; num12 < array7.Length; num12++)
						{
							TLexerMdx.yytl[num7++] = int.Parse(array7[num12].Trim());
						}
					}
					else if (flag8)
					{
						string[] array8 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int num13 = 0; num13 < array8.Length; num13++)
						{
							TLexerMdx.yyth[num8++] = int.Parse(array8[num13].Trim());
						}
					}
					else if (flag9)
					{
						string[] array9 = text.Split(new char[]
						{
							','
						}, StringSplitOptions.RemoveEmptyEntries);
						for (int num14 = 0; num14 < array9.Length; num14++)
						{
							TLexerMdx.yytint[num9++] = int.Parse(array9[num14].Trim());
						}
					}
					else if (flag10)
					{
						num11 = 0;
						string[] array10 = text.Trim().Split(new string[]
						{
							",,"
						}, StringSplitOptions.RemoveEmptyEntries);
						char[] array11 = new char[array10.Length];
						for (int num15 = 0; num15 < array10.Length; num15++)
						{
							if (array10[num15].StartsWith("'", StringComparison.Ordinal))
							{
								if (array10[num15].Length == 3)
								{
									array11[num11++] = array10[num15][1];
								}
								else if (array10[num15].Length == 4)
								{
									array11[num11++] = array10[num15][2];
								}
								else
								{
									Console.WriteLine(" read yytstr error, error string is " + array10[num15] + "line: " + num10.ToString());
								}
							}
							else
							{
								try
								{
									array11[num11++] = (char)int.Parse(array10[num15]);
								}
								catch (FormatException ex)
								{
									Console.WriteLine("NumberFormatException: " + ex.Message);
								}
							}
						}
						TLexerMdx.yyt[num10] = new TYytRec(array11, TLexerMdx.yytint[num10]);
						num10++;
					}
					else if (flag11)
					{
						string[] array12 = text.Split(new char[]
						{
							'='
						}, StringSplitOptions.RemoveEmptyEntries);
						TLexerMdx.keywordValueList[array12[0].ToUpper()] = int.Parse(array12[1]);
						TLexerMdx.keywordTypeList[int.Parse(array12[1])] = int.Parse(array12[2]);
					}
				}
			}
			catch (IOException ex2)
			{
				Console.WriteLine(ex2.ToString());
			}
		}

		// Token: 0x06000129 RID: 297 RVA: 0x0001B128 File Offset: 0x00019328
		internal override void yyaction(int yyruleno)
		{
			char[] a = new char[]
			{
				'=',
				'+',
				'-',
				'*',
				'/',
				'>',
				'<'
			};
			this.yylvalstr = this.getyytext();
			switch (yyruleno)
			{
			case 1:
				this.addlit(this.yylvalstr, this.yytextlen);
				if (this.xcdepth <= 0)
				{
					this.start(2);
					this.yylvalstr = this.litbufdup();
					this.returni(257);
					return;
				}
				this.xcdepth--;
				return;
			case 2:
				this.xcdepth++;
				this.yyless(2);
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 3:
				if (this.getyysstate() == 8)
				{
					this.nchars = this.yytextlen;
					this.addlit(this.yylvalstr, this.yytextlen - 1);
					this.yyless(this.nchars - 1);
					return;
				}
				this.xcdepth = 0;
				this.start(4);
				this.startlit();
				this.yyless(2);
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 4:
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 5:
				this.addlitchar(this.yylvalstr[0]);
				return;
			case 6:
				this.start(2);
				this.addlit(this.yylvalstr, this.yytextlen);
				this.yylvalstr = this.litbufdup();
				this.returni(262);
				return;
			case 7:
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 8:
				if (this.yysstate == 6)
				{
					this.addlit(this.yylvalstr, this.yytextlen);
					return;
				}
				this.start(8);
				this.startlit();
				this.addlit(this.yylvalstr, this.yytextlen);
				this.dummych1 = this.get_char();
				if (this.dummych1 != '\\')
				{
					this.unget_char(this.dummych1);
					return;
				}
				this.dummych2 = this.get_char();
				if (this.dummych2 == '\'')
				{
					this.start(2);
					this.addlit("\\", 1);
					this.addlit("'", 1);
					this.yylvalstr = this.litbufdup();
					this.returni(262);
					return;
				}
				this.unget_char(this.dummych2);
				this.unget_char(this.dummych1);
				return;
			case 9:
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 10:
				this.dummych1 = this.get_char();
				this.unget_char(this.dummych1);
				if (this.dummych1 == '\n')
				{
					this.dummych1 = this.get_char();
					this.addlit(this.yylvalstr + this.dummych1.ToString(), this.yytextlen + 1);
					return;
				}
				if (this.dummych1 != '\\')
				{
					this.addlit(this.yylvalstr, this.yytextlen);
					return;
				}
				this.dummych1 = this.get_char();
				this.dummych2 = this.get_char();
				if (this.dummych2 == '\'')
				{
					this.unget_char(this.dummych2);
					this.addlit(this.yylvalstr + this.dummych1.ToString(), this.yytextlen + 1);
					return;
				}
				this.addlit(this.yylvalstr + this.dummych1.ToString() + this.dummych2.ToString(), this.yytextlen + 2);
				return;
			case 11:
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 12:
				this.start(2);
				this.addlit(this.yylvalstr, this.yytextlen);
				if (this.literallen == 0)
				{
					this.returni(274);
				}
				if (this.literallen >= 255)
				{
					this.setlengthofliteralbuf(255);
					this.literallen = 255;
				}
				this.yylvalstr = this.litbufdup();
				this.returni(282);
				return;
			case 13:
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 14:
				this.start(6);
				this.startlit();
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 15:
				this.dummych1 = this.get_char();
				this.unget_char(this.dummych1);
				if (this.dummych1 == '\n')
				{
					this.dummych1 = this.get_char();
					this.addlit(this.yylvalstr + this.dummych1.ToString(), this.yytextlen + 1);
					return;
				}
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 16:
				this.dummych1 = this.get_char();
				this.unget_char(this.dummych1);
				if (this.dummych1 == ']')
				{
					this.dummych1 = this.get_char();
					this.addlit(this.yylvalstr + this.dummych1.ToString(), this.yytextlen + 1);
					return;
				}
				this.start(2);
				this.addlit(this.yylvalstr, this.yytextlen);
				if (this.literallen == 0)
				{
					this.returni(274);
				}
				if (this.literallen >= 255)
				{
					this.setlengthofliteralbuf(255);
					this.literallen = 255;
				}
				this.yylvalstr = this.litbufdup();
				this.returni(282);
				return;
			case 17:
				this.start(10);
				this.startlit();
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 18:
				this.dummych1 = this.get_char();
				this.unget_char(this.dummych1);
				if (this.dummych1 == '\n')
				{
					this.dummych1 = this.get_char();
					this.addlit(this.yylvalstr + this.dummych1.ToString(), this.yytextlen + 1);
					return;
				}
				this.addlit(this.yylvalstr, this.yytextlen);
				return;
			case 19:
				this.returni(260);
				return;
			case 20:
				this.returni(259);
				return;
			case 21:
				if (this.getyysstate() == 8 || this.getyysstate() == 6 || this.getyysstate() == 4 || this.getyysstate() == 10)
				{
					this.addlit(this.yylvalstr, 1);
					this.yyless(1);
					return;
				}
				this.returni(258);
				return;
			case 22:
				this.returnc(this.yylvalstr[0]);
				return;
			case 23:
				this.returni(266);
				return;
			case 24:
				if (this.getyysstate() == 4)
				{
					this.slashstar = this.yylvalstr.IndexOf("*/", StringComparison.Ordinal);
					if (this.slashstar < 0)
					{
						this.addlit(this.yylvalstr, 1);
						this.yyless(1);
						return;
					}
					this.addlit(this.yylvalstr, this.slashstar + 2);
					this.yylvalstr = this.litbufdup();
					this.yyless(this.slashstar + 2);
					if (this.xcdepth <= 0)
					{
						this.start(2);
						this.returni(257);
						return;
					}
					this.xcdepth--;
					return;
				}
				else
				{
					this.nchars = this.yytextlen;
					this.slashstar = this.yylvalstr.IndexOf("/*", StringComparison.Ordinal);
					this.dashdash = this.yylvalstr.IndexOf("--", StringComparison.Ordinal);
					if (this.slashstar >= 0 && this.dashdash >= 0)
					{
						if (this.slashstar > this.dashdash)
						{
							this.slashstar = this.dashdash;
						}
					}
					else if (this.slashstar > 0 && this.getyysstate() != 4)
					{
						this.nchars = this.slashstar;
					}
					while (this.nchars > 1 && (this.yylvalstr[this.nchars - 1] == '+' || this.yylvalstr[this.nchars - 1] == '-') && this.getyysstate() != 4)
					{
						int num = this.nchars - 1;
						while (num >= 1 && !this.isopchar(this.yylvalstr[num - 1]))
						{
							num--;
						}
						if (num >= 1)
						{
							break;
						}
						this.nchars--;
					}
					if (this.nchars < this.yytextlen)
					{
						this.yyless(this.nchars);
						this.yylvalstr = this.yylvalstr.Substring(0, this.nchars);
					}
					if (this.nchars == 1 && (this.isselfchar(this.yylvalstr[0]) || this.yylvalstr[0] == '@'))
					{
						this.returnc(this.yylvalstr[0]);
						return;
					}
					if (this.nchars >= 2 && this.yylvalstr[this.nchars - 1 - 1] == '.')
					{
						this.yyless(1);
						this.returnc(this.yylvalstr[0]);
						return;
					}
					if (this.nchars >= 2 && this.charinarray(this.yylvalstr[this.nchars - 1 - 1], a) && this.yylvalstr[this.nchars - 1] == ':')
					{
						this.yyless(this.nchars - 1);
						this.yylvalstr = this.yylvalstr.Substring(0, this.nchars - 1);
						if (this.nchars == 2)
						{
							this.returnc(this.yylvalstr[0]);
							return;
						}
						this.returni(265);
						return;
					}
					else if (this.nchars >= 2 && this.charinarray(this.yylvalstr[this.nchars - 1 - 1], a) && this.yylvalstr[this.nchars - 1] == '.')
					{
						this.yyless(this.nchars - 1);
						this.yylvalstr = this.yylvalstr.Substring(0, this.nchars - 1);
						if (this.nchars == 2)
						{
							this.returnc(this.yylvalstr[0]);
							return;
						}
						this.returni(265);
						return;
					}
					else if (this.nchars >= 2 && this.yylvalstr[this.nchars - 1] == '@')
					{
						if (this.nchars == 2)
						{
							this.yyless(this.nchars - 1);
							this.yylvalstr = this.yylvalstr.Substring(0, this.nchars - 1);
							this.returnc(this.yylvalstr[0]);
							return;
						}
						if (this.yylvalstr[this.nchars - 1 - 1] != '@')
						{
							this.yyless(this.nchars - 1);
							this.yylvalstr = this.yylvalstr.Substring(0, this.nchars - 1);
							this.returni(266);
							return;
						}
						this.yyless(this.nchars - 2);
						this.yylvalstr = this.yylvalstr.Substring(0, this.nchars - 2);
						if (this.nchars == 3)
						{
							this.returnc(this.yylvalstr[0]);
							return;
						}
						this.returni(266);
						return;
					}
					else
					{
						if (this.nchars >= 2 && this.yylvalstr[0] == '|' && this.yylvalstr[1] == '|')
						{
							this.yyless(2);
							this.yylvalstr = this.yylvalstr.Substring(0, 2);
							this.returni(283);
							return;
						}
						if (this.nchars >= 2 && this.yylvalstr[0] == '.' && (this.yylvalstr[1] == '*' || this.yylvalstr[1] == '#'))
						{
							this.yyless(1);
							this.returnc(this.yylvalstr[0]);
							return;
						}
						if (this.nchars == 2 && this.yylvalstr[0] == '=' && this.yylvalstr[1] == '#')
						{
							this.yyless(1);
							this.returnc(this.yylvalstr[0]);
							return;
						}
						if (this.nchars <= 2 || this.yylvalstr[0] != '*' || this.yylvalstr[1] != '/' || this.getyysstate() != 4)
						{
							this.returni(265);
							return;
						}
						this.addlit(this.yylvalstr, this.yytextlen);
						if (this.xcdepth <= 0)
						{
							this.start(2);
							this.yylvalstr = this.litbufdup();
							this.returni(257);
							return;
						}
						this.xcdepth--;
						return;
					}
				}
				break;
			case 25:
				this.returni(263);
				return;
			case 26:
				this.nchars = this.yytextlen;
				if (this.yylvalstr[this.nchars - 1] == '.')
				{
					this.dummych1 = this.get_char();
					this.unget_char(this.dummych1);
					if (this.dummych1 == '.')
					{
						this.yyless(this.nchars - 1);
						this.yylvalstr = this.yylvalstr.Substring(0, this.nchars - 1);
						this.returni(263);
						return;
					}
				}
				this.returni(261);
				return;
			case 27:
				this.returni(261);
				return;
			case 28:
			{
				int n;
				if ((n = TLexerMdx.iskeyword(this.yylvalstr)) != -1)
				{
					this.returni(n);
					return;
				}
				this.returni(264);
				return;
			}
			case 29:
				this.returni(275);
				return;
			case 30:
				this.returni(274);
				return;
			default:
				Console.WriteLine("fatal error in yyaction");
				return;
			}
		}

		// Token: 0x04000E71 RID: 3697
		internal static int yynmarks = 0;

		// Token: 0x04000E72 RID: 3698
		internal static int yynmatches;

		// Token: 0x04000E73 RID: 3699
		internal static int yyntrans;

		// Token: 0x04000E74 RID: 3700
		internal static int yynstates;

		// Token: 0x04000E75 RID: 3701
		internal static int[] yyk;

		// Token: 0x04000E76 RID: 3702
		internal static int[] yym;

		// Token: 0x04000E77 RID: 3703
		internal static int[] yytint;

		// Token: 0x04000E78 RID: 3704
		internal static TYytRec[] yyt;

		// Token: 0x04000E79 RID: 3705
		internal static int[] yykl;

		// Token: 0x04000E7A RID: 3706
		internal static int[] yykh;

		// Token: 0x04000E7B RID: 3707
		internal static int[] yyml;

		// Token: 0x04000E7C RID: 3708
		internal static int[] yymh;

		// Token: 0x04000E7D RID: 3709
		internal static int[] yytl;

		// Token: 0x04000E7E RID: 3710
		internal static int[] yyth;

		// Token: 0x04000E7F RID: 3711
		private static string[] keywordlist;

		// Token: 0x04000E80 RID: 3712
		internal static string table_file;

		// Token: 0x04000E81 RID: 3713
		internal static IDictionary<string, int> keywordValueList = new Dictionary<string, int>();

		// Token: 0x04000E82 RID: 3714
		internal static IDictionary<int, int> keywordTypeList = new Dictionary<int, int>();

		// Token: 0x04000E83 RID: 3715
		public TSourceTokenList sourcetokens;
	}
}
